package com.elguile.laptop.casoDeUso;

import org.junit.Assert;
import org.junit.Test;

import com.elguile.laptop.baseDatos.RepositorioCliente;
import com.elguile.laptop.entidades.Cliente;
import com.elguile.laptop.errores.ExceptionNumerCorto;

public class RegistroDeclienteDeberia {

	private static final int DNI_INCORRECTO = 123;
	private static final String JHON_DOE = "jhon Doe";
	private static final int DNICORRECTO = 12345678;
	private final RepositorioCliente repositorioCliente = new RepositorioCliente();
	private final RegistroDeCliente registroDeCliente = new RegistroDeCliente(
			repositorioCliente);

	@Test
	public void agregarCorrecto() {
		Cliente cliente = new Cliente();
		cliente.setDni(DNICORRECTO);
		cliente.setNombre(JHON_DOE);
		registroDeCliente.registrar(cliente);
		Cliente clienteGuardado = repositorioCliente.getPrimero();
		Assert.assertEquals(repositorioCliente.getCantidad(), 1);
		Assert.assertNotNull(clienteGuardado.getCodigo());
		Assert.assertEquals(clienteGuardado.getNombre(), JHON_DOE);
		Assert.assertEquals(clienteGuardado.getDni(), 12345678);
	}

	@Test(expected = ExceptionNumerCorto.class)
	public void lansarErrorEnConDniConPocasCifras() {
		Cliente cliente = new Cliente();
		cliente.setDni(DNI_INCORRECTO);
		registroDeCliente.registrar(cliente);
	}
}
